package com.anandsoftware.service;

import com.anandsoftware.application.ApplicationContext;
import com.anandsoftware.db.io.DatabaseIO;
import com.anandsoftware.system.domain.SystemInformation;

public interface RegistrationService extends BaseService {

	public static final String REGISTRATION_SERVICE_REQUEST_URL = ApplicationContext.REGISTRATION_SERVICE_REQUEST_URL;

	/**
	 * @param key
	 *            key of Encryption Algorithm.
	 * @param systemInformation
	 *            receives all system information to be sent on server.
	 * @return true in case of successful registration on server else false.
	 */
	public boolean registerSystemInformation(
			SystemInformation systemInformation, String key, String myID);

	/**
	 * 
	 * @param systemInformation
	 *            receives all system information to be saved on the local
	 *            machine.
	 * @param dbIO
	 *            used for database interactions.
	 * @return true in case of successful registration on server else false.
	 */
	public boolean registerSystemInformationLocal(
			SystemInformation systemInformation, DatabaseIO dbIO);

	/**
	 * @deprecated will be removed in next version.
	 * @param systemInformation
	 *            receives all system information to be sent on server.
	 * @return true in case of successful registration on server else false.
	 */

	public boolean registerSystemInformation(
			SystemInformation systemInformation, String myID);

}
